package com.xbongbong.saas.model;

import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.saas.domain.entity.CustomerRuleEntity;

import java.util.List;
import java.util.Map;

/**
 * @author youli.chen
 * @ProjectName xbb-pro
 * @Description: 公海池规则服务层
 * @date 2019/1/24 9:57
 */
public interface CustomerRuleModel extends IModel<CustomerRuleEntity> {

    /**
     * 逻辑删除
     *
     * @param key    id
     * @param corpid 公司id
     * @return
     */
    Integer deleteByKey(Integer key, String corpid);

    /**
     * 获取公司指定类型的公海规则
     *
     * @param ruleType 规则类型
     * @param corpid   公司id
     * @return
     */
    CustomerRuleEntity getByRuleType(Integer ruleType, String corpid);

    /**
     * 获取实体
     *
     * @param key    id
     * @param corpid 公司id
     * @return
     */
    CustomerRuleEntity getByKey(Integer key, String corpid);

    /**
     * 获取有设置公海规则的公司id
     *
     * @param now
     * @param startCorpid
     * @param pageNum
     * @return
     */
    List<String> findCorps(Long now, String startCorpid, Integer pageNum);

    /**
     * 获取设置了公海规则的公司数
     *
     * @return
     */
    Integer getCorpsCount(Long now);

    /**
     * 根据entity的ID值判断是新增或是更新
     * @param entity
     * @return
     */
    Integer save(CustomerRuleEntity entity);

    /**
     * 获取最大拥有客户数，前负责人和捞取频率三个规则
     *
     * @param corpid
     * @return
     * @author long.rao
     * @date 2020-04-07 11:20
     */
    List<CustomerRuleEntity> getSpecialRules(String corpid);

    Integer updateDelByCorpid(Integer del, String corpid);
}
